//package org.example;
//
//import org.example.entity.CustomerInfo;
//import org.example.generator.DataGenerator;
//
//import java.time.LocalDate;
//import java.util.HashMap;
//import java.util.Map;
//import java.util.stream.Collectors;
//
///**
// * 测试百家姓分布情况
// */
//public class TestSurnameDistribution {
//    public static void main(String[] args) {
//        System.out.println("=== 测试百家姓分布情况 ===");
//
//        LocalDate testDate = LocalDate.of(2023, 8, 15);
//        Map<String, Integer> surnameCount = new HashMap<>();
//
//        // 生成1000个用户信息统计姓氏分布
//        for (int i = 0; i < 1000; i++) {
//            CustomerInfo customer = DataGenerator.generateCustomerInfo(testDate);
//            String maskedName = customer.getPlName();
//
//            // 提取姓氏（去掉**）
//            String surname = maskedName.replace("**", "");
//            surnameCount.put(surname, surnameCount.getOrDefault(surname, 0) + 1);
//        }
//
//        System.out.println("总生成用户数: 1000");
//        System.out.println("出现的姓氏数量: " + surnameCount.size());
//
//        // 显示前20个最常见的姓氏
//        System.out.println("\n=== 前20个最常见的姓氏 ===");
//        surnameCount.entrySet().stream()
//                .sorted((e1, e2) -> e2.getValue().compareTo(e1.getValue()))
//                .limit(20)
//                .forEach(entry -> {
//                    String surname = entry.getKey();
//                    int count = entry.getValue();
//                    System.out.printf("%-6s: %d次 (%.1f%%)\n", surname, count, (count * 100.0 / 1000));
//                });
//
//        // 统计复姓数量
//        long compoundSurnameCount = surnameCount.keySet().stream()
//                .filter(surname -> surname.length() > 1)
//                .count();
//
//        System.out.println("\n=== 复姓统计 ===");
//        System.out.println("复姓数量: " + compoundSurnameCount);
//
//        // 显示所有复姓
//        System.out.println("\n=== 出现的复姓 ===");
//        surnameCount.keySet().stream()
//                .filter(surname -> surname.length() > 1)
//                .sorted()
//                .forEach(surname -> {
//                    int count = surnameCount.get(surname);
//                    System.out.printf("%-8s: %d次\n", surname, count);
//                });
//
//        // 显示一些示例姓名
//        System.out.println("\n=== 姓名生成示例 ===");
//        for (int i = 0; i < 10; i++) {
//            CustomerInfo customer = DataGenerator.generateCustomerInfo(testDate);
//            System.out.println("示例" + (i+1) + ": " + customer.getPlName());
//        }
//    }
//}






